package cn.com.xf.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class checkPhone {	
	 /** 
	  * 手机号验证 
	  * @author ：shijing 
	  * 2016年12月5日下午4:34:46 
	  * @param  str 
	  * @return 验证通过返回true 
	  */  
	 public static boolean isMobile(final String str) {  
	     Pattern p = null;  
	     Matcher m = null;  
	     boolean b = false;  
	     p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); // 验证手机号  
	     m = p.matcher(str);  
	     b = m.matches();  
	     return b;  
	 }  
	 /** 
	  * 电话号码验证 
	  * @author ：shijing 
	  * 2016年12月5日下午4:34:21 
	  * @param  str 
	  * @return 验证通过返回true 
	  */  
	 public static boolean isPhone(final String str) {  
	     Pattern p1 = null, p2 = null;  
	     Matcher m = null;  
	     boolean b = false;  
	     p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$");  // 验证带区号的  
	     p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$");         // 验证没有区号的  
	     if (str.length() > 9) {  
	        m = p1.matcher(str);  
	        b = m.matches();  
	     } else {  
	         m = p2.matcher(str);  
	        b = m.matches();  
	     }  
	     return b;  
	 } 
	 
	 public static boolean isOkPhone(final String str){
		 if(isPhone(str) || isMobile(str)){  
		     return true; 
		   }
		return false;
		 
	 }
	 public static String phoneReplace(final String str){
		 if(str.length() == 11){
			 StringBuffer phone = new StringBuffer(str);
			 return phone.replace(3, 8, "***").toString();
		 }	 
		return str;
		 
	 }
	 public static void main(String[] args) {
		String str = "18107471234";
		System.out.println(checkPhone.isOkPhone(str));
		System.out.println(checkPhone.phoneReplace(str));
	}
}
